\documentclass[11pt]{article}   % list options between brackets
\usepackage{fullpage}              % list packages between braces
\usepackage{listings}
\usepackage{color}
\usepackage{hyperref}

\hypersetup{
    colorlinks,
    citecolor=black,
    filecolor=black,
    linkcolor=blue,
    urlcolor=blue
}

\begin{document}

\title{\bf CPSC 589 - Project Proposal \\ \emph{3D Motion Capture and Modelling Using Kinect Sensor}}   % type title between braces
\author{Romain Clement, Kyle Milz, Jeff Nicholson}         % type author(s) between braces
\date{October 20, 2011}    % type date between braces
\maketitle

\tableofcontents
\pagebreak
\begin{abstract}
Modelling and animation of complex 3D objects is difficult. It is time consuming and requires expensive tools. The goal of this project is to create an easier way to model complex 3D objects and capture their motion using a Kinect sensor. For example, modelling of the human body is already possible, but it requires many cameras and expensive software. The project will investigate doing this using Kinect and existing open source drivers and API's.
\end{abstract}
\pagebreak
\section{Introduction}
The Kinect Sensor is the fastest selling consumer electronic device ever. It allows 3D motion capture and depth sensing, as well as skeletal tracking. The project will investigate whether Kinect can be used to effectively model complex 3D objects. The first such object, is the human body. Since the Kinect was designed to track the human form, it should be possible to extract the data from Kinect and use it to from a 3D model in OpenGL. This can then be used as the basis for content creation for games. The motion capture data from Kinect can also be used to provide lifelike animations for the content. \\
Beyond skeletal tracking, another interesting scenario will be investigated: whether Kinect can provide useable data when scanning other objects. Things like trees blowing in the wind, or ripples and waves in water. These are hard to model accurately, which is noticed in video games. Using the Kinect we will try to model these types of objects, and/or capture their motion with some degree of accuracy.

\section{Goals and Objectives}
This main goal of this project is to provide an easy way of modelling complex real 3D objects  such the human body. As the raw data extracted from the Kinect Sensor will be a skeleton representation (with control points) of the 3D object itself, any kind of modelling following the general shape can be applied. In the end, the first objective is be able to quickly model a complex object and observe its real-time motion in space. The second objective is to offer a cheap 3D motion capture system that does not require using multiple markers all over the real object.

\section{Methodology}
\textbf{Phase 1:} Evaluation of Technology\\
In the evaluation phase we will probe the feature sets of the different freely
available Kinect drivers and toolkits. We have identified 2 possible free
toolkits, OpenNI and OpenKinect.\\
OpenNI is made by PrimeSense, the same company that made the sensors for the
Kinect. In addition to free low level drivers, OpenNI comes with a non-free
(no source available) skeletal tracking system called NITE, which can be
downloaded and linked against freely.\\
OpenKinect provides only a free low level driver to the Kinect. There is no
middleware that comes with OpenKinect that allows for easy high level
functions like skeletal recognition, for example. Working with this toolkit
would mean we would have to implement any high level functions ourselves.\\
\\
\textbf{Phase 2:} Proof Of Concept\\
The proof of concept phase is intended to rapidly obtain the limitations of
the capture device. Once its actual capabilities are known then more educated
inferences of a good application direction will emerge.\\
\\
\textbf{Phase 3:} Design\\
Narrow the scope and pick something specific to implement. Pick an
attainable goal with reasonable effort and time constraints and put this idea
into motion.\\
\\
\textbf{Phase 4:} Development\\
Divvy man power and start committing. Each team member is unified under a single
narrow direction and clear expectations are shared by everyone.

\section{Expected Results}
Just by modelling a 3D object from its given control points, we should be able to obtain an modelled object, animated with life-like motions in real-time. One should be able to move in front of the Kinect Sensor and see a modelled body following the movements, providing a realistic virtual animation.

\section{Timeline}
Work on the project will start immediately. The first step will be to evaluate the different technologies available, including Kinect drivers and existing API's for getting the data from Kinect into OpenGL. Next a proof of concept will be developed, which simply gets data from kinect and renders it in an OpenGL scene. Next the features to implement will be decided upon, and system architecture will be designed. Then development will begin..
\begin{itemize}
\item{Evaluation of technology \emph{0.5 week}}
\item{Proof of Concept \emph{1 week}}
\item{Design \emph{0.5 week}}
\item{Development \emph{4 weeks}}
\end{itemize}


\section{Works Cited}
In order to extract the data from Kinect, existing open source frameworks will be used. Both \href{http://www.openni.org/}{OpenNI} and  \href{http://openkinect.org/wiki/Main_Page}{OpenKinect} will be investigated.\\
The application will use \href{http://qt.nokia.com/products/qt-sdk}{QT} for the user interface, and \href{http://www.opengl.org/}{OpenGL} for the graphics.\\
Our language of choice is \href{http://www.cplusplus.com/}{C++}.
 
\section{Responsibilities}
The workload will be distributed evenly among the group members. Each member will work on all parts of the project to maximize the learning experience.
\end{document}